package org.jeecg.modules.oms.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.jeecg.common.aspect.annotation.Dict;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.util.Date;

/**
 * 设计文件表
 */
@Data
@TableName("oms_design_file")
public class DesignFile implements Serializable {
    private static final long serialVersionUID = 1L;
    
    /** 文件ID */
    @TableId(type = IdType.ASSIGN_ID)
    private String id;
    
    /** 订单ID */
    private String orderId;
    
    /** 订单编号（非数据库字段，用于前端展示） */
    @TableField(exist = false)
    private String orderNo;
    
    /** 租户ID */
    private Integer tenantId;
    
    /** 汇总单文件路径 */
    private String summaryFilePath;
    
    /** 汇总单文件名称 */
    private String summaryFileName;
    
    /** 汇总单上传人ID */
    private String uploadSummaryPersonId;
    
    /** 汇总单上传人姓名 */
    private String uploadSummaryPersonName;
    
    /** 汇总单上传时间 */
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date uploadSummaryTime;
    
    /** 优化单文件路径 */
    private String optimizationFilePath;
    
    /** 优化单文件名称 */
    private String optimizationFileName;
    
    /** 优化单上传人ID */
    private String uploadOptimizationPersonId;
    
    /** 优化单上传人姓名 */
    private String uploadOptimizationPersonName;
    
    /** 优化单上传时间 */
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date uploadOptimizationTime;
    
    /** 上传人ID */
    private String uploadPersonId;
    
    /** 上传人姓名 */
    private String uploadPersonName;
    
    /** 上传时间 */
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date uploadTime;
    
    /** 文件状态 0-待解析 1-解析中 2-解析成功 3-解析失败 */
    @Dict(dicCode = "design_file_status")
    private Integer status;
    
    /** 创建人 */
    private String createBy;
    
    /** 创建时间 */
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;
    
    /** 更新人 */
    private String updateBy;
    
    /** 更新时间 */
    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    private Date updateTime;
} 